package cn.edu.zafu.bigdata.yuyini;

// Movable接口，定义移动和停止的方法
interface Movable {
    void move();
    void stop();
}

// Resizable接口，定义缩放的方法
interface Resizable {
    void resize(double factor);
}

// Car类，实现了Movable接口
class Car_2 implements Movable {
    // 实现move()方法
    @Override
    public void move() {
        System.out.println("The car is moving.");
    }

    // 实现stop()方法
    @Override
    public void stop() {
        System.out.println("The car has stopped.");
    }
}

// ResizableCircle类，实现了Movable和Resizable接口
class ResizableCircle implements Movable, Resizable {
    // ResizableCircle类具有属性radius（半径）
    private double radius;

    // 构造函数
    public ResizableCircle(double radius) {
        this.radius = radius;
    }

    // 实现move()方法
    @Override
    public void move() {
        System.out.println("The circle is moving.");
    }

    // 实现stop()方法
    @Override
    public void stop() {
        System.out.println("The circle has stopped.");
    }

    // 实现resize()方法
    @Override
    public void resize(double factor) {
        radius *= factor;
        System.out.println("The circle's radius is now: " + radius);
    }
}

// 测试类TestInterface
public class Interface_Test {
    public static void main(String[] args) {
        // 创建Car和ResizableCircle的实例
        Car_2 car = new Car_2();
        ResizableCircle resizableCircle = new ResizableCircle(5.0);

        // 验证Car类对Movable接口的实现
        System.out.println("Testing Car:");
        car.move();
        car.stop();

        // 验证ResizableCircle类对Movable和Resizable接口的实现
        System.out.println("\nTesting ResizableCircle:");
        resizableCircle.move();
        resizableCircle.stop();
        resizableCircle.resize(2.0); // 缩放因子为2
    }
}
